home *** CD-ROM | disk | FTP | other *** search
/ Champak 132 (Alt) / Vol 132.iso / interfac / it.dig / scripts / __Packages / mx / controls / ComboBase.as < prev    next >
Encoding:
Text File  |  2011-06-09  |  9.4 KB  |  313 lines

  1. class mx.controls.ComboBase extends mx.core.UIComponent
  2. {
  3.    var getValue;
  4.    var boundingBox_mc;
  5.    var downArrow_mc;
  6.    var onDownArrow;
  7.    var trackAsMenuWas;
  8.    var onPressWas;
  9.    var onDragOutWas;
  10.    var onDragOverWas;
  11.    var border_mc;
  12.    var __border;
  13.    var text_mc;
  14.    var oldOnSetFocus;
  15.    var oldOnKillFocus;
  16.    var focusTextField;
  17.    var __width;
  18.    var __height;
  19.    var height;
  20.    static var mixIt1 = mx.controls.listclasses.DataSelector.Initialize(mx.controls.ComboBase);
  21.    static var symbolName = "ComboBase";
  22.    static var symbolOwner = mx.controls.ComboBase;
  23.    static var version = "2.0.0.377";
  24.    var _editable = false;
  25.    var downArrowUpName = "ScrollDownArrowUp";
  26.    var downArrowDownName = "ScrollDownArrowDown";
  27.    var downArrowOverName = "ScrollDownArrowOver";
  28.    var downArrowDisabledName = "ScrollDownArrowDisabled";
  29.    var wrapDownArrowButton = true;
  30.    var DSgetValue = mx.controls.listclasses.DataSelector.prototype.getValue;
  31.    var multipleSelection = false;
  32.    function ComboBase()
  33.    {
  34.       super();
  35.       this.getValue = this._getValue;
  36.    }
  37.    function init()
  38.    {
  39.       super.init();
  40.       this.tabEnabled = !this._editable;
  41.       this.tabChildren = this._editable;
  42.       this.boundingBox_mc._visible = false;
  43.       this.boundingBox_mc._width = this.boundingBox_mc._height = 0;
  44.    }
  45.    function createChildren()
  46.    {
  47.       var _loc3_ = new Object();
  48.       _loc3_.styleName = this;
  49.       if(this.downArrow_mc == undefined)
  50.       {
  51.          _loc3_.falseUpSkin = this.downArrowUpName;
  52.          _loc3_.falseOverSkin = this.downArrowOverName;
  53.          _loc3_.falseDownSkin = this.downArrowDownName;
  54.          _loc3_.falseDisabledSkin = this.downArrowDisabledName;
  55.          _loc3_.validateNow = true;
  56.          _loc3_.tabEnabled = false;
  57.          this.createClassObject(mx.controls.SimpleButton,"downArrow_mc",19,_loc3_);
  58.          this.downArrow_mc.buttonDownHandler = this.onDownArrow;
  59.          this.downArrow_mc.useHandCursor = false;
  60.          this.downArrow_mc.onPressWas = this.downArrow_mc.onPress;
  61.          this.downArrow_mc.onPress = function()
  62.          {
  63.             this.trackAsMenuWas = this.trackAsMenu;
  64.             this.trackAsMenu = true;
  65.             if(!this._editable)
  66.             {
  67.                this._parent.text_mc.trackAsMenu = this.trackAsMenu;
  68.             }
  69.             this.onPressWas();
  70.          };
  71.          this.downArrow_mc.onDragOutWas = this.downArrow_mc.onDragOut;
  72.          this.downArrow_mc.onDragOut = function()
  73.          {
  74.             this.trackAsMenuWas = this.trackAsMenu;
  75.             this.trackAsMenu = false;
  76.             if(!this._editable)
  77.             {
  78.                this._parent.text_mc.trackAsMenu = this.trackAsMenu;
  79.             }
  80.             this.onDragOutWas();
  81.          };
  82.          this.downArrow_mc.onDragOverWas = this.downArrow_mc.onDragOver;
  83.          this.downArrow_mc.onDragOver = function()
  84.          {
  85.             this.trackAsMenu = this.trackAsMenuWas;
  86.             if(!this._editable)
  87.             {
  88.                this._parent.text_mc.trackAsMenu = this.trackAsMenu;
  89.             }
  90.             this.onDragOverWas();
  91.          };
  92.       }
  93.       if(this.border_mc == undefined)
  94.       {
  95.          _loc3_.tabEnabled = false;
  96.          this.createClassObject(_global.styles.rectBorderClass,"border_mc",17,_loc3_);
  97.          this.border_mc.move(0,0);
  98.          this.__border = this.border_mc;
  99.       }
  100.       _loc3_.borderStyle = "none";
  101.       _loc3_.readOnly = !this._editable;
  102.       _loc3_.tabEnabled = this._editable;
  103.       if(this.text_mc == undefined)
  104.       {
  105.          this.createClassObject(mx.controls.TextInput,"text_mc",18,_loc3_);
  106.          this.text_mc.move(0,0);
  107.          this.text_mc.addEnterEvents();
  108.          this.text_mc.enterHandler = this._enterHandler;
  109.          this.text_mc.changeHandler = this._changeHandler;
  110.          this.text_mc.oldOnSetFocus = this.text_mc.onSetFocus;
  111.          this.text_mc.onSetFocus = function()
  112.          {
  113.             this.oldOnSetFocus();
  114.             this._parent.onSetFocus();
  115.          };
  116.          this.text_mc.restrict = "^\x1b";
  117.          this.text_mc.oldOnKillFocus = this.text_mc.onKillFocus;
  118.          this.text_mc.onKillFocus = function(n)
  119.          {
  120.             this.oldOnKillFocus(n);
  121.             this._parent.onKillFocus(n);
  122.          };
  123.          this.text_mc.drawFocus = function(b)
  124.          {
  125.             this._parent.drawFocus(b);
  126.          };
  127.          delete this.text_mc.borderStyle;
  128.       }
  129.       this.focusTextField = this.text_mc;
  130.       this.text_mc.owner = this;
  131.       this.layoutChildren(this.__width,this.__height);
  132.    }
  133.    function onKillFocus()
  134.    {
  135.       super.onKillFocus();
  136.       Key.removeListener(this.text_mc);
  137.       this.getFocusManager().defaultPushButtonEnabled = true;
  138.    }
  139.    function onSetFocus()
  140.    {
  141.       super.onSetFocus();
  142.       this.getFocusManager().defaultPushButtonEnabled = false;
  143.       Key.addListener(this.text_mc);
  144.    }
  145.    function setFocus()
  146.    {
  147.       if(this._editable)
  148.       {
  149.          Selection.setFocus(this.text_mc);
  150.       }
  151.       else
  152.       {
  153.          Selection.setFocus(this);
  154.       }
  155.    }
  156.    function setSize(w, h, noEvent)
  157.    {
  158.       super.setSize(w,h != undefined ? h : this.height,noEvent);
  159.    }
  160.    function setEnabled(enabledFlag)
  161.    {
  162.       super.setEnabled(enabledFlag);
  163.       this.downArrow_mc.enabled = enabledFlag;
  164.       this.text_mc.enabled = enabledFlag;
  165.    }
  166.    function setEditable(e)
  167.    {
  168.       this._editable = e;
  169.       if(this.wrapDownArrowButton == false)
  170.       {
  171.          if(e)
  172.          {
  173.             this.border_mc.borderStyle = "inset";
  174.             this.text_mc.borderStyle = "inset";
  175.             mx.controls.ComboBase.symbolName = "ComboBox";
  176.             this.invalidateStyle();
  177.          }
  178.          else
  179.          {
  180.             this.border_mc.borderStyle = "comboNonEdit";
  181.             this.text_mc.borderStyle = "dropDown";
  182.             mx.controls.ComboBase.symbolName = "DropDown";
  183.             this.invalidateStyle();
  184.          }
  185.       }
  186.       this.tabEnabled = !e;
  187.       this.tabChildren = e;
  188.       this.text_mc.tabEnabled = e;
  189.       if(e)
  190.       {
  191.          delete this.text_mc.onPress;
  192.          delete this.text_mc.onRelease;
  193.          delete this.text_mc.onReleaseOutside;
  194.          delete this.text_mc.onDragOut;
  195.          delete this.text_mc.onDragOver;
  196.          delete this.text_mc.onRollOver;
  197.          delete this.text_mc.onRollOut;
  198.       }
  199.       else
  200.       {
  201.          this.text_mc.onPress = function()
  202.          {
  203.             this._parent.downArrow_mc.onPress();
  204.          };
  205.          this.text_mc.onRelease = function()
  206.          {
  207.             this._parent.downArrow_mc.onRelease();
  208.          };
  209.          this.text_mc.onReleaseOutside = function()
  210.          {
  211.             this._parent.downArrow_mc.onReleaseOutside();
  212.          };
  213.          this.text_mc.onDragOut = function()
  214.          {
  215.             this._parent.downArrow_mc.onDragOut();
  216.          };
  217.          this.text_mc.onDragOver = function()
  218.          {
  219.             this._parent.downArrow_mc.onDragOver();
  220.          };
  221.          this.text_mc.onRollOver = function()
  222.          {
  223.             this._parent.downArrow_mc.onRollOver();
  224.          };
  225.          this.text_mc.onRollOut = function()
  226.          {
  227.             this._parent.downArrow_mc.onRollOut();
  228.          };
  229.          this.text_mc.useHandCursor = false;
  230.       }
  231.    }
  232.    function get editable()
  233.    {
  234.       return this._editable;
  235.    }
  236.    function set editable(e)
  237.    {
  238.       this.setEditable(e);
  239.    }
  240.    function _getValue()
  241.    {
  242.       return !this._editable ? this.DSgetValue() : this.text_mc.getText();
  243.    }
  244.    function draw()
  245.    {
  246.       this.downArrow_mc.draw();
  247.       this.border_mc.draw();
  248.    }
  249.    function size()
  250.    {
  251.       this.layoutChildren(this.__width,this.__height);
  252.    }
  253.    function setTheme(t)
  254.    {
  255.       this.downArrowUpName = t + "downArrow" + "Up_mc";
  256.       this.downArrowDownName = t + "downArrow" + "Down_mc";
  257.       this.downArrowDisabledName = t + "downArrow" + "Disabled_mc";
  258.    }
  259.    function get text()
  260.    {
  261.       return this.text_mc.getText();
  262.    }
  263.    function set text(t)
  264.    {
  265.       this.setText(t);
  266.    }
  267.    function setText(t)
  268.    {
  269.       this.text_mc.setText(t);
  270.    }
  271.    function get textField()
  272.    {
  273.       return this.text_mc;
  274.    }
  275.    function invalidateStyle()
  276.    {
  277.       this.downArrow_mc.invalidateStyle();
  278.       this.text_mc.invalidateStyle();
  279.       this.border_mc.invalidateStyle();
  280.    }
  281.    function layoutChildren(w, h)
  282.    {
  283.       if(this.downArrow_mc == undefined)
  284.       {
  285.          return undefined;
  286.       }
  287.       if(this.wrapDownArrowButton)
  288.       {
  289.          var _loc2_ = this.border_mc.borderMetrics;
  290.          this.downArrow_mc._width = this.downArrow_mc._height = h - _loc2_.top - _loc2_.bottom;
  291.          this.downArrow_mc.move(w - this.downArrow_mc._width - _loc2_.right,_loc2_.top);
  292.          this.border_mc.setSize(w,h);
  293.          this.text_mc.setSize(w - this.downArrow_mc._width,h);
  294.       }
  295.       else
  296.       {
  297.          this.downArrow_mc.move(w - this.downArrow_mc._width,0);
  298.          this.border_mc.setSize(w - this.downArrow_mc.width,h);
  299.          this.text_mc.setSize(w - this.downArrow_mc._width,h);
  300.          this.downArrow_mc._height = this.height;
  301.       }
  302.    }
  303.    function _changeHandler(obj)
  304.    {
  305.    }
  306.    function _enterHandler(obj)
  307.    {
  308.       var _loc2_ = this._parent;
  309.       obj.target = _loc2_;
  310.       _loc2_.dispatchEvent(obj);
  311.    }
  312. }
  313.